package org.nf.web.config;

import cn.hutool.core.util.ClassUtil;
import jakarta.servlet.ServletConfig;

import java.util.Set;

/**
 * @Author lzp
 * @Date 2024-05-13
 * 配置对象（也是所有配置的根），作用是将yml解析的数据封装到这个对象中
 */
public class Configure {
    /**
     * 这里的字段命名必须与yml中节点名称相同
     * 这里的servlet 对应的是父级节点
     */
    private ServerConfig servet = new ServerConfig();

    /**
     * 扫描的控制器（为什么用set集合，因为set集合不允许重复的值）
     */
    private Set<Class<?>> classes;

    /**
     * 执行扫描,根据启动类所在的包已经所有的子包开始扫描
     * @param mainClass
     */
    public void scan(Class<?> mainClass){
        classes = ClassUtil.scanPackage(mainClass.getPackageName());
    }

    public Set<Class<?>> getClasses() {
        return classes;
    }

    public void setClasses(Set<Class<?>> classes) {
        this.classes = classes;
    }

    public ServerConfig getServet() {
        return servet;
    }

    public void setServet(ServerConfig servet) {
        this.servet = servet;
    }
}
